﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Security.Cryptography;

namespace Transport
{
    public partial class Account : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }
        protected int isExistsEmail(string email)
        {
            NguoiDungControl ngDungControl = new NguoiDungControl();
            nguoi_dung userInfo = new nguoi_dung();
            userInfo = ngDungControl.findByEmail(email);
            if (userInfo != null)
                return 1;
            return 0;
        }
        protected void ChangePassword(string oldPassword, string newpassword1, string newpassword2)
        {
            HashAlgorithm alg = new MD5CryptoServiceProvider();
            byte[] bte = alg.ComputeHash(System.Text.Encoding.UTF8.GetBytes(oldPassword));
            string oldpass = BitConverter.ToString(bte).Replace("-", "").ToLower();

            NguoiDungControl ngDungCtrl = new NguoiDungControl();
            nguoi_dung userInfo = ngDungCtrl.findByUsername(Session["user_name"].ToString());

            if (oldpass == userInfo.password)
            {
                if (newpassword1 == newpassword2)
                {
                    byte[] xxx = alg.ComputeHash(System.Text.Encoding.UTF8.GetBytes(newpassword1));
                    string newpass = BitConverter.ToString(xxx).Replace("-", "").ToLower();

                    userInfo.password = newpass;

                    if (ngDungCtrl.update(userInfo))
                    {
                        Session["info"] = "Cập nhật password thành công";
                    }
                    else
                        Session["error"] = "Cập nhật password thất bại";
                }
                else
                {
                    Session["error"] = "Password bạn nhập không khớp";
                }
            }
            else
            {
                Session["error"] = "Password cũ không khớp";
            }
        }
        protected void ChangeInfo(string hoten, string email, string fax, string telephone)
        {
         
            NguoiDungControl ngDung = new NguoiDungControl();
            string oldEmail = ngDung.getEmail(Session["user_name"].ToString());
            if (oldEmail == email)
            {
                nguoi_dung ngDungEntity = ngDung.findByUsername(Session["user_name"].ToString());
                ngDungEntity.ho_ten = hoten;
                ngDungEntity.email = email;
                ngDungEntity.fax = fax;
                ngDungEntity.sdt = telephone;
                bool result = ngDung.update(ngDungEntity);
                if (result == true)
                {
                    Session["info"] = "Cập nhật tài khoản thành công";
                }
                else
                {
                    Session["error"] = "Cập nhật tài khoản thất bại";
                }
            }
            else
            {
                if (isExistsEmail(email) == 0)
                {
                    nguoi_dung ngDungEntity = ngDung.findByUsername(Session["user_name"].ToString());
                    ngDungEntity.ho_ten = hoten;
                    ngDungEntity.email = email;
                    ngDungEntity.fax = fax;
                    ngDungEntity.sdt = telephone;
                    bool result = ngDung.update(ngDungEntity);
                    if (result == true)
                    {
                        Session["info"] = "Cập nhật tài khoản thành công";
                    }
                    else
                    {
                        Session["error"] = "Cập nhật tài khoản thất bại";
                    }
                }
                else
                {
                    Session["error"] = "Email đã có người sử dụng, xin chọn email khác";
                }
            }


        }
        protected string GenAccInfo(string userName)
        {
            NguoiDungControl nguoiDung = new NguoiDungControl();
            string html = null;
            try
            {
                nguoi_dung entityNgD = nguoiDung.findByUsername(userName);
                html += "<div id=\"content\">"
          + "<form method=\"post\" enctype=\"multipart/form-data\" id=\"frmedit\">"
          + "<input type=\"hidden\" name=\"action\" value=\"change_info\">"
          + "<h2>Thông tin cá nhân</h2>"
          + "<div class=\"content\">"
            + "<table class=\"form\">"
              + "<tbody><tr>"
                + "<td><span class=\"required\">*</span> Tên:</td>"
                + "<td><input type=\"text\" class=\"required\" name=\"hoten\" value=\"" + entityNgD.ho_ten + "\">"
                  + "</td>"
              + "</tr>"
              + "<tr>"
                + "<td><span class=\"required\">*</span> E-Mail:</td>"
                + "<td><input type=\"text\" class=\"required\" name=\"email\" value=\"" + entityNgD.email + "\">"
                  + "</td>"
              + "</tr>"
              + "<tr>"
                + "<td><span class=\"required\">*</span> Điện thoại:</td>"
                + "<td><input type=\"text\" class=\"required\" name=\"telephone\" value=\"" + entityNgD.sdt + "\">"
                  + "</td>"
              + "</tr>"
              + "<tr>"
                + "<td>Fax:</td>"
                + "<td><input type=\"text\" name=\"fax\" class=\"required\"value=\""+entityNgD.fax+"\"></td>"
              + "</tr>"
            + "</tbody></table>"
          + "</div>"
          + "<div class=\"buttons\">"
            + "<input type=\"submit\" class=\"readmore\" value=\"Lưu\" />"
          + "</div>"
        + "</form>"
        + "</div>";
            }
            catch (FormatException f)
            {
                return null;
            }
            return html;
        }
    }
}